package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;

import Modelo.Equipo;
import Modelo.Jugador;
import Modelo.Liga;
import Modelo.Partido;
import Vista.VentanaGestionarEquipo;

public class ControlarVentanaGestionarEquipo implements ActionListener
{
	
	VentanaGestionarEquipo ventanagestionarequipo;
	Equipo equipo;

	//Constructor del controlador
	public ControlarVentanaGestionarEquipo()
	{
				
		// TODO Auto-generated constructor stub
		super();
		ventanagestionarequipo = new VentanaGestionarEquipo();
       	ventanagestionarequipo.setLocationRelativeTo(null);
		ventanagestionarequipo.setVisible(true);
		ventanagestionarequipo.agregarListener(this);
		equipo=new Equipo();
	}

	@Override
	public void actionPerformed(ActionEvent e) 
	{
	// TODO Auto-generated method stub
	 
		if (e.getActionCommand().equalsIgnoreCase("Registrar")){ 
			registrarEquipo();
		}
		else 
			if (e.getActionCommand().equalsIgnoreCase("Agregar Jugadores")){
				cargarJugador(Integer.parseInt(ventanagestionarequipo.getTxtCodigoEquipo().getText()));
			}
		else
			if (e.getActionCommand().equalsIgnoreCase("Cancelar")){
			     ventanagestionarequipo.blanquearCampos();
			}
		else			
			if(e.getActionCommand().equals("Salir")){
		         ventanagestionarequipo.dispose();
			}
					
	}

	private void registrarEquipo()
	{

		if(validarCampos() == false)
		{
			
			ventanagestionarequipo.mostrarMensaje("Debe llenar todos los campos");
		}
		else
		{
			String codigoEquipo,nombreEquipo,annoFundacion,ciudad,nombreEstadio;
		
			codigoEquipo = ventanagestionarequipo.getCodigoEquipo();
			nombreEquipo = ventanagestionarequipo.getNombreEquipo();
			annoFundacion = ventanagestionarequipo.getAnno();
			ciudad = ventanagestionarequipo.getCiudad();
			nombreEstadio= ventanagestionarequipo.getNombreEstadio();
		
			
		    Equipo equipo = new Equipo(codigoEquipo,nombreEquipo,annoFundacion,ciudad,nombreEstadio, 0,0,0,0,0,0,0);
		
		    ControladorVentanaPrincipal.partido.agregarEquipo(equipo);
			
			ventanagestionarequipo.blanquearCampos(); 
			ventanagestionarequipo.mostrarMensaje("El equipo fue registrado Exitosamente" + "Hay:"  + ControladorVentanaPrincipal.partido.contarEquipo());
			
		}
				
	}
	
	private void cargarJugador(int codigo)
	{
		FileReader archivo=null;
		Jugador jugador;
		try
		{  switch(codigo){
			case 001:  archivo = new FileReader("src//Jugadores001.txt");
			break;
			case 002:  archivo = new FileReader("src//jugadores002.txt");
			break;
			case 003:  archivo = new FileReader("src//jugadores003.txt");
			break;
			case 004:  archivo = new FileReader("src//jugadores004.txt");
			break;
			case 005:  archivo = new FileReader("src//jugadores005.txt");
			break;
			case 006:  archivo = new FileReader("src//jugadores006.txt");
			break;
				}
			BufferedReader buff = new BufferedReader(archivo);
			boolean eof = false;
			while(!eof)
			{
			   String linea = buff.readLine();
			   if(linea == null)
			     {
				  eof = true;
			     }
			   else 
			      {	
			   		 jugador = new Jugador();		         
			         jugador.setCedula(linea);
			         jugador.setNombre(buff.readLine());
			         jugador.setApellido(buff.readLine());
			         jugador.setFechaNacimiento(buff.readLine());
			         jugador.setPosicion(buff.readLine());
			         equipo.agregarJugador(jugador);
			       
			      }
			 }
			buff.close();
					

		}catch(IOException e){
			System.out.println("Error.."+e.toString());
		}	
	         
}

	public boolean validarCampos(){
		boolean valido = true;
		if (ventanagestionarequipo.getCodigoEquipo().equals("")|| 
				ventanagestionarequipo.getNombreEquipo().equals("")|| 
					ventanagestionarequipo.getAnno().equals("")|| 
						ventanagestionarequipo.getCiudad().equals("")||
							ventanagestionarequipo.getNombreEstadio().equals("")){
			valido = false;
		}
		return valido;
	}


}
